package com.lebang.mapper;

import com.lebang.configuration.datasource.DataSource;
import com.lebang.entity.member.LbbMemberRecord;
import com.lebang.entity.task.LbbCommon;
import com.lebang.example.LbbCommonExample;
import com.lebang.model.vo.buss.TaskSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface LbbCommonMapper {
    long countByExample(LbbCommonExample example);

    int deleteByExample(LbbCommonExample example);

    int deleteByPrimaryKey(Long id);

    int insert(LbbCommon record);

    @DataSource("commonDB")
    int insertSelective(LbbCommon record);

    List<LbbCommon> selectByExampleWithBLOBs(LbbCommonExample example);

    @DataSource("commonDB")
    List<LbbCommon> selectByExample(LbbCommonExample example);

    LbbCommon selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") LbbCommon record, @Param("example") LbbCommonExample example);

    int updateByExampleWithBLOBs(@Param("record") LbbCommon record, @Param("example") LbbCommonExample example);

    int updateByExample(@Param("record") LbbCommon record, @Param("example") LbbCommonExample example);

    @DataSource("commonDB")
    int updateByPrimaryKeySelective(LbbCommon record);

    int updateByPrimaryKeyWithBLOBs(LbbCommon record);

    int updateByPrimaryKey(LbbCommon record);

    @DataSource("commonDB")
    List<String> selectTaskCategoryList(@Param("phone") String phone);

    List<LbbMemberRecord> findCheckListByid(@Param("list") List<String> list);

    /**
 * 数量
 *
 * @param vo
 * @return
 * @author weizx
 * @date 2018年8月24日 上午11:21:53
 */
    @DataSource("commonDB")
    Integer total(@Param("vo") TaskSearchVo vo, @Param("status") Integer status);

    int updatebyprimarykeywithblobs(LbbCommon record);

    Integer speechtotal(@Param("id") Integer id);

    Integer speechplantotal(@Param("id") Integer id);

    List<Map<String, Object>> searchHomePage(@Param("userid") String userid, @Param("page") Integer page, @Param("size") Integer size, @Param("brand") String brand, @Param("stime") String stime, @Param("etime") String etime);

    @DataSource("commonDB")
    void delDate();

    @DataSource("commonDB")
    void releaseList(List<String> list);

    int updatebyexamplewithblobs(@Param("record") LbbCommon record, @Param("example") LbbCommonExample example);

    @DataSource("commonDB")
    LbbCommon getByTaskId(String taskId);

    @DataSource("commonDB")
    List<Map<String, Object>> task(@Param("status") Integer status);

    /**
 * 用户任务列表
 *
 * @param userid
 * @param page
 * @param size
 * @return
 * @author weizx
 * @date 2018年8月22日 下午2:45:46
 */
List<Map<String, Object>> hasCompleted(@Param("userid") String userid, @Param("page") int page, @Param("size") int size);

    @DataSource("commonDB")
    void updatetodaytotal();

    List<Map<String, Object>> speechpagging(@Param("id") Integer id, @Param("page") Integer page, @Param("limit") Integer limit);

    List<Map<String, Object>> speechplanpagging(@Param("id") Integer id, @Param("page") Integer page, @Param("limit") Integer limit);

    /**
 * 任务列表
 *
 * @param userid
 * @param page
 * @param size
 * @param brand
 * @param stime
 * @param etime
 * @return
 * @author weizx
 * @date 2018年8月22日 上午11:50:56
 */
List<Map<String, Object>> search(@Param("userid") String userid, @Param("page") Integer page, @Param("size") Integer size, @Param("brand") String brand, @Param("stime") String stime, @Param("etime") String etime);

    /**
 * 列表
 *
 * @param vo
 * @return
 * @author weizx
 * @date 2018年8月24日 上午11:22:55
 */
    @DataSource("commonDB")
    List<Map<String, Object>> pagging(@Param("vo") TaskSearchVo vo, @Param("status") Integer status);

    List<LbbCommon> selectbyexamplewithblobs(LbbCommonExample example);

    @DataSource("commonDB")
    List<Map<String, Object>> selectCommon(@Param("title") String title,@Param("status") String status,@Param("offset") int offset,@Param("limit") int limit);

    @DataSource("commonDB")
    long countComon(@Param("title") String title,@Param("status") String status);
}